home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1995 October
/
EnigmA AMIGA RUN 01 (1995)(G.R. Edizioni)(IT)[!][issue 1995-10][Aminet 7].iso
/
Aminet
/
comm
/
fido
/
RFS275.lha
/
DOCS
/
RFH.DOC
< prev
next >
Wrap
Text File
|
1995-01-03
|
10KB
|
270 lines
;$VER: RFH Doc The WPL Remote Freq Handler Function Host Williamson 56.02
RFH is an Arexx FunctionHost version of the RFS WPL File Request
Server. RFH is identical to RFS in most respects, but is a stripped down
version (about 1/2 the size) using a smaller config file (about 1/3
smaller). The RFH.cfg config file is read only when RFH loads and opens a
port, or when the RFHCFG command is received. The following RFS features
and/or functions are not present in RFH.
- all support of human requests removed
- Personal message service removed.
- FirstCall text removed
- Header text removed
- Tail text removed
- Debug and Verbose output removed
- config file format different
RFH has a number of features that are not available in RFS, these
feature include:
- can limit file requests to only those listed as INCLUDED nodes
- can limit bytes sent for those sites listed as LIMITED nodes
RFH processes requests approximately twenty times faster than RFS.
The Installer script 'Install-RFH', allows one to select support for
file descriptions in FileNote format (Generic) , or in DLG, TransAmiga and
Excelsior BBS formats. This method reduces the size of RFH by eliminating
unused code.
RFH is based upon RFS which in turn was ported to WPL from the
source-released version of Roger Clark's QuickSilver File Request Handler.
Certain procedures originally written by Roger have been optimized and are
used with his permission and my thanks. Roger and I have an on-going code
exchange arrangement in an effort to provide standardization and
optimization for the users of both packages.
Compiling:
After running the Installer script, RFH may be compiled with the
following command line:
RexxPlus Mail:rexx/RFH.rexx +UL(xferq.library,0,-30,0)
+UL(RexDosSupport.library,0,-30,0) +BS -MW +VE
Rename RPDIR:RFH.rexx to RFH.
Configuration:
Nodelist flag should be set to XX.
All configuration options are documented in CFG:RFH.cfg. The only
other external file required is the xfreqsh compatible list of freqable
files.
Freq list:
The freq list is in the format:
request_name [!password] fullpathname
RFSfreqlist.rexx, Wfilelist.rexx and Falcon FileMGR.rexx all create
such a list, with password, magic name and auto fullpath update support.
Other xfreqsh freq list creators such as GKupload and others may be
compliant also.
For DLG systems, this script by Denis Turcotte creates the freq list:
List File:(?|??|???|????)/~(enterarea.txt|POINTERS.FILE|User.file|.info|*.fd|File.dat) FILES NOHEAD LFORMAT "%N %F%N" to t:flist
sort t:flist t:flist
join cfg:magic.lst t:flist as cfg:FREQ.LST
delete t:flist QUIET
Update Requests:
The FTS-0006 update request specification was written, as with most
other FTSs, to document existing practice with a particular piece of
software. However, it is obviously NOT user friendly, as it requires
conversion between 'human' time and unix time. While this is easily
accomplished by programs which create .REQ files, it is not so simple for
people who write them manually.
Therefore, it was proposed that a new "UPDATE" type be implemented that
can be used by humans. QuickSilver and FreqMate now include support for
this format.
This is SIMPLY:
+/-Uyymmdd[hhmmss]
Where the time is optional and GMT offset is NOT taken into account.
Both forms (date and datetime) are accepted by RFS.
It has been suggested in the NET_DEV echo that the Nodelist FLAG "XU"
be used to indicate this type of update request handling.
In addition, FTS-0006 standard unix timestamp update requests are
processed.
WildCards and Magic Request Names:
RFH can use AmigaDOS pattern matching facilities. This SHOULD mean
that all pattern matching specifications should work, although this has NOT
been tested. This also means that the underscore bug of AmigaDOS's pattern
matching unfortunately affects operations. If a fullpath name contains an
underscore preceeding the PATTERN, it may be considered a match by
AmigaDOS.
Two configuration options affect how wildcards are processed:
MatchFirst - if TRUE, only the first file matching is sent
MultiMagic - if TRUE, multiple files are send for MAGIC names
Startup:
RFH is launched during mailer slave (modemline) startup, one port for
each line that will accept file requests.
RUN >NIL: RX RFH WPL_Application_Basename line [CFG cfgpath]
or
RUN >NIL RPDIR:RFH WPL_Application_Basename line [CFG cfgpath]
where:
WPL_Application_Basename - WSC-0004 compliant wpl-application
basename in lowercase.
line - the modem line
CFG full_cfg_pathname
alternate config file pathname eg: RAM:RFH.cfg
Normally RFH looks for it's config as RAM:RFH.CFG or
CFG:RFH.CFG. If an alternate config is specfied, it will look
for that one first.
eg:
RUN >NIL: RFH porticus 2
RUN >NIL: RFH Gazebo 1 CFG S:rfh.cfg
Arexx Commands:
Arexx Port name: RFH$(line)
The RFH ports commands:
REQ - process a file request
RFHCFG - re-reads RAM:RFH.CFG
- This will be executed when GenMailer is run with
'Opt CONFIG'
- Can also be run from CLI
RX "Address RFH2 RFHCFG"
RFHEXIT - exits
To close down an RFH port:
Rx "Address RFH3 RFHEXIT"
Request Processing:
REQ baud host reqfile listed fnc hyd remoteaddress remotesysop
Baud - modem<>modem bps
host - our 5d Address for this session
reqfile - fullpathname of file request to be processed
listed - 1 if caller is in nodelist or site cache
fnc - 1 if remote present FNC under EMSI, 0 otherwise
hyd - 1 if hydra protocol active, 0 otherwise
remoteaddress - 5D callers address
remotesysop - callers names (nodelist, cache or emsi data)
example mailer call:
RexxMsg FY RFH$(line) "REQ $(Baud) $(host.address) $(infile)
$(listed) $(fnc) $(hyd) $(remote.address) $(remote.sysop)"
RFH Installation for JamMail:
JamMail does not support any direct WPL file request handlers other
than XfreqSH, so to use RFH you will have to Edit your jammail.wpl.
Perhaps you can convince James McOrmond to add support for RFH, the
information herein should be sufficent in either case.
After configuring JamMail to use XfreqSh, find the following lines
in the 'postinbound:' prodcedure:
Set whatrun "Run $(xferqsh) >>$(freqlog) $(freqcfg) $(remfile) $(infile) \"$(Remote.Address)\" \"Received at $(baud) on ${$(Line).date} $<Time>\""
RexxMsg SY REXX "Address 'COMMAND' '$(whatrun)'"
Return
As far as I know, JamMail does not set any variable to indicate that a
site is IN the nodelist or PhoneBook. It also does not set any variable to
indicate remote presented FNC under EMSI. Jammail does not support the
Hydra protocol at all.
Therefore we will manually set the $(listed), $(fnc), and $(hyd)
variables. If there are similar variables added to JamMail in the future
and they are set as booleans (0 or 1) then substitute them for $(listed)
, $(fnc), and $(hyd). (and tell me about it so I can update this ;)
replace the above code with either:
Set listed 1 fnc 0 hyd 0
RexxMsg FY RFH$(line) "REQ $(Baud) $(host.address) $(infile) $(fnc)
$(hyd) $(listed) $(remote.address) $(remote.sysop)"
Clear listed
Return
or
RexxMsg FY RFH$(line) "REQ $(Baud) $(host.address) $(infile) 1 0 0
$(remote.address) $(remote.sysop)"
Return
Now find each 'startup-' label (startup-1:, startup-2: etc) and add
the following just before the 'Jump slaveloop' instruction for each slave
that will handle file requests:
System "Run >NIL: Rx RFH jammail $(line)"
or if you have compiled RFH.rexx:
System "Run >NIL: RFH jammail $(line)"
To have the RFH ports close when the mailer exits, you have to find
all code sections where a slave exit occurs.
Find this piece of code in the 'WaitRing:' procedure:
Set RC $<abort>
FalseJump BangIt2
RexxMsg NY LOGPROC "PutLog JamMailLogs [$(Line)] $<Time> Line $(line) Exiting"
ModemClose
Return
Insert this before the 'Return'
RexxMsg FY RFH$(line) "RFHEXIT"
Find this section of code after 'NotBReakcNow2:'
Set RC $<abort>
FalseJump WaitRing1
RexxMsg NY LOGPROC "PutLog JamMailLogs [$(Line)] $<Time> Line $(line) Exiting"
ModemClose
Return
Insert this before the 'Return'
RexxMsg FY RFH$(line) "RFHEXIT"
JamMail does not follow the WSC standards in respect to LogProc
loggroup names. However, neither do any of the Shelter Mailers :) So you
will have to edit RFH.rexx to change the loggroup name assignment.
from:
loggroup=lower(wplport)||'wpl'
to
loggroup=wplport||'Logs'
As far as I know, unlike Shelter Mailers, JamMail does not have a
facility for reconfiguration while running. If you wish to add support for
the RFHCFG command, please ask James to add support for slave
unload/reload.
You may still use the RFHCFG command with the following command line by
directly addressing the RFH PORT.:
Rx "Address RFH2 RFHCFG"
This should do it.